package com.whnk.pm.service.impl;

import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.whnk.common.support.Convert;
import com.whnk.pm.domain.ProInfo;
import com.whnk.pm.mapper.ProInfoMapper;
import com.whnk.pm.service.IProInfoService;

/**
 * 项目基本 服务层实现
 * 
 * @author whwhnk
 * @date 2019-07-24
 */
@Service("ProInfoServiceImpl")
public class ProInfoServiceImpl implements IProInfoService 
{
	@Autowired
	private ProInfoMapper proInfoMapper;

	/**
     * 查询项目基本信息
     * 
     * @param proId 项目基本ID
     * @return 项目基本信息
     */
    @Override
	public ProInfo selectProInfoById(Integer proId)
	{
	    return proInfoMapper.selectProInfoById(proId);
	}
	
	/**
     * 查询项目基本列表
     * 
     * @param proInfo 项目基本信息
     * @return 项目基本集合
     */
	@Override
	public List<ProInfo> selectProInfoList(ProInfo proInfo)
	{
	    return proInfoMapper.selectProInfoList(proInfo);
	}
	
    /**
     * 新增项目基本
     * 
     * @param proInfo 项目基本信息
     * @return 结果
     */
	@Override
	public int insertProInfo(ProInfo proInfo)
	{
	    return proInfoMapper.insertProInfo(proInfo);
	}
	
	/**
     * 修改项目基本
     * 
     * @param proInfo 项目基本信息
     * @return 结果
     */
	@Override
	public int updateProInfo(ProInfo proInfo)
	{
	    return proInfoMapper.updateProInfo(proInfo);
	}

	/**
     * 删除项目基本对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	@Override
	public int deleteProInfoByIds(String ids)
	{
		return proInfoMapper.deleteProInfoByIds(Convert.toStrArray(ids));
	}
	
	/**
	 * 根据状态查询项目列表
	 * 
     * @param proSta 项目状态：0-打开；1-关闭
     * @return 项目集合
	 */
	public List<ProInfo> selectProsBySta(String proSta){
		return proInfoMapper.selectProsBySta(proSta);
	}

	public List<String> getAllProList() {
		ProInfo proInfo = new ProInfo();
		List<ProInfo> proInfoList = proInfoMapper.selectProInfoList(proInfo);
		List<String> stringList = proInfoList.stream().map(k -> k.getProName()).collect(Collectors.toList());
		return stringList;
	}
	
}
